선형 탐색
선형 탐색
선형 탐색(Linear Search)은치 최적화 분야에서되는 기본적인 최적화 기 중 하나로, 주로 기기 하강법(Gradient Descent)과 같은 반복적 최적화 알고리의 핵심 구성소로 활용된다. 이 기법은 주어진 탐색 방향에서 목적 함수를 최소화하는 최적의 스텝 사이즈(step size) 또는 학습률(learning rate)을 결정하는 데 목적이 있다. 선형 탐색은 최적화 문제의 수렴 속도와 안정성에 큰 영향을 미치므로, 알고리즘 설계에서 중요한 역할을 한다.
개요
수치 최적화에서 반복적 알고리즘은 다음과 같은 형태로 진행된다:
$$ x_{k+1} = x_k + \alpha_k d_k $$
여기서: - $x_k$: 현재 반복 단계에서의 변수 벡터 - $d_k$: 탐색 방향 (예: 음의 기울기 $-\nabla f(x_k)$) - $\alpha_k$: 스텝 사이즈 (step size), 또는 이동 거리 - $f(x)$: 최소화하고자 하는 목적 함수
선형 탐색의 목적은 고정된 $d_k$에 대해, $f(x_k + \alpha d_k)$를 최소화하거나 충분히 감소시키는 $\alpha_k > 0$를 찾는 것이다. 이 과정은 일변수 최적화 문제로 볼 수 있으며, $ \phi(\alpha) = f(x_k + \alpha d_k) $를 $\alpha \geq 0$에 대해 최소화하는 것이다.
선형 탐색의 종류
선형 탐색은 목적 함수의 감소를 보장하는 조건에 따라 크게 두 가지로 나뉜다.
1. 정확한 선형 탐색 (Exact Line Search)
정확한 선형 탐색은 다음의 최적화 문제를 정확히 푸는 방식이다:
$$ \alpha_k = \arg\min_{\alpha \geq 0} f(x_k + \alpha d_k) $$
이 방법은 이론적으로 이상적이지만, 매 반복마다 일변수 최적화 문제를 정확히 풀어야 하므로 계산 비용이 매우 높다. 특히 복잡한 목적 함수의 경우 수치적 방법으로 근사해야 하며, 이는 전체 알고리즘의 효율성을 저하시킬 수 있다.
장점
- 매 단계에서 목적 함수를 최대한 감소시킴
- 수렴 이론 분석에 유리
단점
- 계산 비용이 큼
- 실용적인 응용에서 비효율적일 수 있음
2. 불완전한 선형 탐색 (Inexact Line Search)
불완전한 선형 탐색은 정확한 최소값을 찾는 대신, 충분한 감소(sufficient decrease)를 보장하는 조건을 만족하는 스텝 사이즈를 찾는 방법이다. 이 방식은 계산 효율성을 높이기 위해 널리 사용된다.
대표적인 조건은 다음과 같다.
아르미ijo 조건 (Armijo Condition)
아르미ijo 조건은 목적 함수의 감소가 기울기 방향의 선형 근사보다 일정 비율 이상 작아야 한다는 조건이다. 수식으로 표현하면:
$$ f(x_k + \alpha d_k) \leq f(x_k) + c_1 \alpha \nabla f(x_k)^T d_k $$
여기서: - $0 < c_1 < 1$ (일반적으로 $c_1 = 10^{-4}$) - $\nabla f(x_k)^T d_k < 0$ (탐색 방향이 하강 방향이어야 함)
이 조건은 감소량이 너무 작지 않도록 보장하며, 백트래킹(backtracking) 알고리즘과 함께 사용되어 효율적인 스텝 사이즈를 찾는다.
컬티 조건 (Curvature Condition)
컬티 조건은 스텝 사이즈가 너무 작지 않도록 하여 수렴 속도를 개선한다. 수식은 다음과 같다:
$$ \nabla f(x_k + \alpha d_k)^T d_k \geq c_2 \nabla f(x_k)^T d_k $$
여기서 $c_1 < c_2 < 1$ (예: $c_2 = 0.9$).
아르미ijo와 컬티 조건을 동시에 만족하는 것을 울프 조건(Wolfe Conditions)이라고 한다.
골드스타인 조건 (Goldstein Conditions)
골드스타인 조건은 목적 함수 값이 두 개의 선형 함수 사이에 있도록 제한한다:
$$ f(x_k) + (1 - c)\alpha \nabla f(x_k)^T d_k \leq f(x_k + \alpha d_k) \leq f(x_k) + c\alpha \nabla f(x_k)^T d_k $$
단, $0 < c < 0.5$. 이 조건은 아르미ijo보다 더 강력하지만, 볼록성이 보장되지 않은 함수에서는 문제가 발생할 수 있다.
알고리즘 예시: 백트래킹 선형 탐색 (Backtracking Line Search)
백트래킹은 아르미ijo 조건을 만족하는 스텝 사이즈를 빠르게 찾기 위한 실용적인 방법이다.
def backtracking_line_search(f, grad_f, x, d, alpha=1.0, rho=0.8, c=1e-4):
while f(x + alpha * d) > f(x) + c * alpha * np.dot(grad_f(x), d):
alpha *= rho
return alpha
- 초기 스텝 사이즈 $\alpha$를 설정
- 아르미ijo 조건을 만족할 때까지 $\alpha$를 $\rho$ 배로 줄임 ($0 < \rho < 1$)
- 조건을 만족하면 그 값을 반환
이 방식은 계산이 간단하고 실시간 최적화에 적합하다.
활용 분야
선형 탐색은 다음과 같은 분야에서 핵심 기법으로 사용된다: - 기계 학습 (경사 하강법, Adam 등) - 공학 최적화 (구조 설계, 제어 시스템) - 수치 해석 (비선형 방정식 풀이) - 금융 모델링 (포트폴리오 최적화)
참고 자료 및 관련 문서
- Nocedal, J., & Wright, S. J. (2006). Numerical Optimization (2nd ed.). Springer.
- Boyd, S., & Vandenberghe, L. (2004). Convex Optimization. Cambridge University Press.
- 관련 문서: 기울기 하강법, 울프 조건, 뉴턴 방법
선형 탐색은 수치 최적화의 기초이자 핵심 요소로서, 알고리즘의 성능을 결정짓는 중요한 역할을 한다. 정확한 설계와 조건 선택이 최적화 결과에 직접적인 영향을 미치므로, 문제 특성에 맞는 방식을 선택하는 것이 중요하다.
이 문서는 AI 모델(qwen-3-235b-a22b-instruct-2507)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.